﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;

namespace ScreensInterfaces
{
    public class ScreenInput : INotifyPropertyChanged
    {
        private string header = "";
        private string footer = "";
        private string note = "";
        private string text1 = "";
        private string text2 = "";
        private string text3 = "";
        private string text4 = "";
        private bool isShowBackButton = false;
        private bool isShowNextButton = false;
        private bool isShowMainMenuButton = false;
        private bool isShowOkayButton = false;
        private bool isShowCancelButton = false;
        private List<ScreenImage> images;
        private List<ScreenChoice> choices;

        public int TimeOut { get; set; }

        public string Header
        {
            get 
            { 
                return header;
            }
            set
            {
                header = value;
                OnPropertyChanged("Header");
            }
        }

        public string Footer
        {
            get
            {
                return footer;
            }
            set
            {
                footer = value;
                OnPropertyChanged("Footer");
            }
        }

        public string Note
        {
            get
            {
                return note;
            }
            set
            {
                note = value;
                OnPropertyChanged("Note");
            }
        }

        public string Text1
        {
            get
            {
                return text1;
            }
            set
            {
                text1 = value;
                OnPropertyChanged("Text1");
            }
        }

        public string Text2
        {
            get
            {
                return text2;
            }
            set
            {
                text2 = value;
                OnPropertyChanged("Text2");
            }
        }

        public string Text3
        {
            get
            {
                return text3;
            }
            set
            {
                text3 = value;
                OnPropertyChanged("Text3");
            }
        }

        public string Text4
        {
            get
            {
                return text4;
            }
            set
            {
                text4 = value;
                OnPropertyChanged("Text4");
            }
        }
        
        

        public bool IsShowBackButton
        {
            get
            {
                return isShowBackButton;
            }
            set
            {
                isShowBackButton = value;
                OnPropertyChanged("IsShowBackButton");
            }
        }

        public bool IsShowNextButton
        {
            get
            {
                return isShowNextButton;
            }
            set
            {
                isShowNextButton = value;
                OnPropertyChanged("IsShowNextButton");
            }
        }

        public bool IsShowMainMenuButton
        {
            get
            {
                return isShowMainMenuButton;
            }
            set
            {
                isShowMainMenuButton = value;
                OnPropertyChanged("IsShowMainMenuButton");
            }
        }

        public bool IsShowOkayButton
        {
            get
            {
                return isShowOkayButton;
            }
            set
            {
                isShowOkayButton = value;
                OnPropertyChanged("IsShowOkayButton");
            }
        }

        public bool IsShowCancelButton
        {
            get
            {
                return isShowCancelButton;
            }
            set
            {
                isShowCancelButton = value;
                OnPropertyChanged("IsShowCancelButton");
            }
        }

        public List<ScreenImage> Images
        {
            get
            {
                return images;
            }
            set
            {
                images = value;
                OnPropertyChanged("Images");
            }
        }

        public List<ScreenChoice> Choices
        {
            get
            {
                return choices;
            }
            set
            {
                choices = value;
                OnPropertyChanged("Choices");
            }
        }

        public ScreenInput()
        {
            images = new List<ScreenImage>();
            choices = new List<ScreenChoice>();
        }

        public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged(String propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(propertyName));
            }
        }
    }
}
